应用层

网络应用模型

1 客户/服务器(C/S)模型

CS模型中客户是服务请求方,服务器是服务提供方,其工作流程是:

- 服务器处于接收请求的状态
- 客服机发出服务请求,等待接收结果
- 服务器收到请求后分析请求并处理,将结果发送给客户机

C/S模型特点:

- 网络中主机地位不平等,服务器拥有更高权限,可以对客户机进行限制
- 客户机之间不直接通信
- 可扩展性不佳,服务器支持的客户机数量有限

2 P2P模型

在P2P模型中,任意一对计算机称为对等方(Peer),直接相互通信,每个结点即作为服务器也作为客户机。

P2P模型的优点:

- 减轻服务器计算压力,消除对某个服务器的完全依赖
- 多个客户机之间直接共享文档
- 可扩展性好
- 网络健壮性强

DNS系统

DNS系统用于将域名转换为IP地址

1 层次域名空间

域名可以发分为顶级域名、二级域名、三级域名等,其中最高级别的域名写在最右边。

2 域名服务器

  1. 根域名服务器
    根域名服务器是最高层次的域名服务器,若本地域名服务器无法解析某域名,就会向根域名服务器求助,根域名服务器确定本地服务器要找哪一个顶级域名服务器进行查询。
  2. 顶级域名服务器
    顶级域名服务器管理该顶级域名下的所有二级域名,收到NDS请求后它可能直接给出结果或给出下一跳地址。
  3. 授权域名服务器(权限域名服务器)
    每一个主机都必须在授权域名服务器登记,授权域名服务器总能将其管辖的主机名转换为主机的IP地址。
  4. 本地域名服务器
    主机的DNS域名请求首先发送给本地域名服务器

3 域名解析过程

域名解析是把域名映射为IP地址(正向解析)或把IP地址映射为域名(反向解析)的过程,DNS请求以UDP数据报的形式发送。
域名解析有两种方式:

- 递归查询:对根域名负载过大,集合不使用,类似于深度遍历
- 递归和迭代相结合的查询:迭代查询类似于层次遍历

递归与迭代相结合的查询方式:

- 主机向本地域名服务器的查询采用递归查询
- 本地域名服务器向根域名服务器的查询采用迭代查询

文件传输协议FTP

1 FTP的工作原理

FTP是使用最广泛的文件传输协议,FTP屏蔽了计算机系统的异构细节,适合于异构网络中的计算机之间传送文件,FTP采用C/S模型,并使用TCP的可靠传输服务。
FTP提供以下服务:

- 不同主机系统之间的文件传输
- 以用户权限管理的方式提供用户对远程FTP服务器上文件的管理能力
- 以匿名FTP的方式提供公用文件共享的能力

FTP的工作步骤:

- 打开服务器21端口
- 等待客户进程发起连接请求
- 启动从属进程处理客户机请求,客户进程请求处理完毕则从属进程终止
- 回到等待状态,继续接收其他客户进程请求

2 控制连接与数据连接

FTP在工作时使用两个并行的FTP连接:控制连接(21端口)和数据连接(22端口)

  1. 控制连接
    控制连接用来传输控制信息,如连接请求和传送请求

  2. 数据连接
    数据连接用来连接客户端和服务端的数据传送进程

电子邮件

1 电子邮件系统的组成结构

电子邮件是一种异步通信方式,发件人将邮件发送到收件人的邮件服务器,收件人可随时上网使用自己的邮件服务器进行读取。
电子邮件组成:

  • 用户代理UA:用户与电子邮件系统的接口,通常是一个程序,如Foxmail
  • 邮件服务器:发送和接收邮件
  • 邮件发送协议:用于UA向邮件服务器发送邮件或邮件服务器之间发送邮件,常用SMTP
  • 邮件读取协议:用于用户代理从邮件服务器读取邮件,常用POP3

邮件收发过程:

  • 1 发件人用UA撰写邮件,UA用SMTP协议将邮件传送给发送方邮件服务器
  • 2 发送方邮件服务器将邮件放入邮件缓冲队列
  • 3 发送方的邮件服务器的STMP进程发现邮件缓存有待发送邮件,向收件方邮件服务器的STMP进程发起建立TCP连接
  • 4 TCP连接建立后,STMP客户进程向远程STMP服务器进程发送邮件
  • 5 接收方的邮件服务器中的STMP服务器进程收到邮件,将邮件放入收件人邮箱中
  • 6 收件人调用UA,使用POP3协议读取接收方邮件服务器的邮件

2 电子邮件格式和MIME

  1. 电子邮件格式

    首部:

    From:abc@gmail.com
    To:xyz@gmail.com
    Subject:HelloWorld

    主体:

    the content of this email

  1. MIME(多用途网际邮件扩充)
    MIME定义传送非ASCII码的规则,用于解决SMTP只能传送ASCII码的问题。

STMP协议

STMP(简单邮件传输协议)是一种提供可靠有效的电子邮件传输的协议,STMP用TCP连接,使用25端口号。   
STMP通信过程:

  1. 连接建立
    发送方的邮件发送到发送方的邮件服务器的邮件缓存后,STMP客户端就每隔一定的时间对邮件缓存进程扫描,如发现有邮件,就使用STMP的25端口与接收方邮件服务器的SMTP服务器建立TCP连接.
  2. 邮件传送
    连接建立后,开始传送邮件
  3. 连接释放
    邮件发送完毕后,SMTP客户发送QUIT命令,若返回信息是‘221’则表示对方SMTP同意释放TCP连接,邮件传送过程结束。

POP3协议

POP(邮局协议)是一个简单的邮件读取协议,POP3是它的第三版。POP3采用‘拉’(Pull)的通信方式,当用户读取邮件时,UA向邮件服务器发出请求,‘拉’取用户邮箱中的邮件。
POP3也使用C/S的工作方式,在传输层使用TCP,端口是110。

万维网WWW

1 万维网概念与组成结构

万维网内核部分构成:

  • 统一资源定位符URL
  • 超文本传输协议HTTP
  • 超文本标记语言HTML

万维网工作流程:

  • Web用户使用浏览器指定URL与Web服务器建立连接,并发送浏览请求
  • Web服务器将URL转换为文件路径,并返回信息给Web浏览器
  • 通信完成,关闭连接

2 超文本传输协议HTTP

HTTP协议规定在服务器和浏览器之间的请求和响应的格式和规则,是万维网进行可靠文件交换的重要基础。

HTTP的操作过程(以访问菜鸟教程为例)

1. 浏览器分析URL(http://www.runoob.com/html/html-intro.html)
2. 浏览器向DNS请求解析www.runoob.com
3. 域名DNS解析百度服务器的IP地址
4. 浏览器与该服务器建立TCP连接(端口号80)
5. 浏览器发送HTTP请求:GET /html/html-intro.html
6. 服务器通过HTTP响应把文件html-intro.html发送给浏览器
7. TCP连接释放
8. 浏览器将文件html-intro.html进行释放,并把Web页面显示给用户

HTTP协议的特点

1. HTTP协议是无状态协议,服务器不会记得曾经访问过的用户,通常采用Cookie来跟踪用户活动。
2. HTTP采用TCP作为运输层协议,但HTTP协议本身是无连接的,双方在交换HTTP报文之前不需要建立连接,
3. HTTP的非持久连接中,对每一个网页元素都需要建立一个TCP连接。
4. HTTP的持久连接中(HTTP/1.1支持)中,同一客户与服务器只需建立一个TCP连接
5. 持久连接分为流水线方式和非流水线方式,非流水线方式中,客户在收到一个响应前不能再发送下一个请求;流水线方式中,客户可以连续发送请求。

HTTP的报文结构
HTTP报文分为请求报文和响应报文

请求报文:

- 请求行:包含方法、URL和HTTP版本
- 首部行:
- 实体主体:通常不用

响应报文:

- 状态行:包含版本、状态码和短语
- 首部行:
- 实体主体:可能没有

HTTP请求报文中的常见方法:

方法 意义
GET 请求读取由URL所标志的信息
HEAD 请求读取由URL所标志的信息的首部
POST 给服务器添加信息
CONNECT 用于代理服务器

小结

常见应用层协议总结
应用程序 FTP数据链路 FTP控制链路 TENNET SMTP DNS TFTP HTTP POP3 SNMP
使用协议 TCP TCP TCP TCP UDP UDP TCP TCP TCP
端口 20 21 23 25 50 69 80 110 161